/*

This file is part of Rooms3D.

Copyright (C) 2008 Pixecur Technologies Incorporated (Esotera).
Visit Esotera at http://www.esoteras3.com
 
Rooms3D is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
 
Rooms3D is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with Rooms3D; see the file COPYING.  If not, write to 
Pixecur Technologies, 213-31 Peet Street, St. John's, NL, A1B 3W8. 
 
Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
 
*/
// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the WIN32UTILS_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// WIN32UTILS_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef WIN32UTILS_EXPORTS
#define WIN32UTILS_API __declspec(dllexport)
#else
#define WIN32UTILS_API __declspec(dllimport)
#endif

#include <shellapi.h>
#include <shlwapi.h>
#include <wininet.h>
#include <strsafe.h>
#include <winnetwk.h>

#include <string>
using namespace std;
typedef basic_string<WCHAR> stdwstr;
//#include "IExtractImage.h"
#include "OBJSAFE.H"





extern "C" 
{
	WIN32UTILS_API BOOL OpenFileInDefaultEditor(LPCWSTR fileName);
	WIN32UTILS_API BOOL ExecuteShellCommand(LPCWSTR command, LPCWSTR workingDirectory, LPCWSTR parameters);
	WIN32UTILS_API BOOL ExtractFileThumbnail(LPCWSTR fileName, BOOL isLargeThumbnail, long *pBufferSize, char* pngBuffer);
	WIN32UTILS_API BOOL SetProcessPriorityBelowNormal();
	WIN32UTILS_API BOOL SetProcessPriorityNormal();
	WIN32UTILS_API BOOL SetProcessPriorityAboveNormal();
	WIN32UTILS_API DWORD GetCurrentProcessNumericId();
	WIN32UTILS_API int MapNetworkDrive(LPCWSTR remPath, LPCWSTR localPath, LPCWSTR userName, LPCWSTR password, BOOL jinteractive, BOOL jprompt);
	WIN32UTILS_API int DeleteNetworkDrive(LPCWSTR devName, BOOL jupdProfile, BOOL jforce);
	WIN32UTILS_API BOOL SetWorkingSetSize(DWORD jminBytes, DWORD jmaxBytes);
	WIN32UTILS_API int GetNetworkDriveRemotePath(LPCWSTR lpLocalName, char* remoteNameBuffer, int* length);
}



